LtU Forum, Site Discussion

Dr Jekyll and Mr C


The Jekyll Programming Language
:

Jekyll is a high level programming language that can be translated
both to and from human readable, human editable C. Not only can the
C version of a file be generated from the Jekyll version, but the
Jekyll version can be generated from the C version. By being inter-
convertible with C, Jekyll removes the need for companies to take the
risk of moving their projects to a new language. A program can be ported
to Jekyll one file at a time, or one programmer at a time. If the Jekyll
compiler ceases to be available, or a tool doesn’t support Jekyll, or a
programmer doesn’t understand Jekyll, this is not a problem as one can
just use the C code. Jekyll enhances C with many high level features,
including safety, generic types, stack allocated lambda expressions,
and type classes. All features have been carefully designed so that they
map elegantly to and from C.

It allows statically resolved generics as well as dynamic dispatch. Too
bad about the C-like syntax ;-)

Choice of OS of LtU readers

A totally different question for in the fun department,

I was wondering about the 'geekiness' of the LtU crowd. As one of the measures of that would be choice of OS people work on, I wondered

What is your favourite OS you work on (at home, or at the office)?

I run Fedore Core 3 on an Asus S5N notebook.

What is a Proposition?

I just started reading "Type Theory and Functional Programming" and realised pretty rapidly that I wasn't sure what a proposition was.

When I look at Wikipedia - http://en.wikipedia.org/wiki/Proposition - they seemed rather negative on the whole idea. If propositions are questionable how can you do something as concrete as write programs with them?

Am I just getting two different meanings of "proposition" mixed up? In the article it says

In Aristotelian logic a proposition is a particular kind of sentence: one which affirms or denies a predicate of a subject.

Even I know what a predicate is, so should I just run with this definition?

Thanks.

Sequentiality, laziness, Haskell, and cyclic block diagrams

More shameless self-promotion from me: here's a paper I've been working on that may be of interest to LtU readers, "Many cyclic block diagrams do not need parallel semantics."

It is about parallel vs. sequential semantics as applied to an interesting block diagram. (Here the adjectives "parallel" and "sequential" are used as they are in discussions of the full abstraction problem rather than in discussions of concurrency.) It also introduces a block diagram extension to Haskell I've been working on.

Referentially Transparent Scheme

What features from R5RS would have to be removed if one wanted a referentially transparent scheme?

In Lisp In Small Pieces, Christian states that assignment, side-effects, and continuations break referential transparency. So I would assume that one would have to remove any destructive operators such as set!, set-car!, set-cdr!, as well as removing call/cc.

I also thought that defining global variables (via define) would be removed though I would imagine if you dropped the availability of set! the use of define in the global context would not be much of an issue.

Am I looking at this the right way? Are there other things that have side-effects in Scheme that I am not aware of? Is there more information on this topic that I can look and learn more?

Best regards,

MJ Stahl

Deadlink

The link to be found at "Courses" targetting "Comp Sci 319: Lambda Calculus (University of Chicago)" is dead and produces a 404.

GAWK (GNU AWK) for AI?

I've been doing a lot of (g)awk lately and recently stumbled upon an interesting little paper called GAWK for AI?.

This resonates with my recent experiences/revelations regarding how feature impoverished languages (like gawk) can often help you focus more on the domain and task at hand.

Pi-calculus and mobile system books

Am looking at books on process calculii, and am wondering what is thought of the following:

* Milner's Communicating and Mobile Systems: The Pi-Calculus
* Sangiorgi and Walker's The Pi-Calculus: A Theory of Mobile Processes
* Fokkink's Introduction to Process Algebra

All three are at Powell's; unfortunately, all three are currently only stocked in their warehouse in town. I prefer not to ask them to transfer a book to their retail outlets, unless there's a good chance I might purchase it--so any recommendations on which one(s) I should investigate first?

I already have Hoare's Communicating Sequential Processes, so no need to recommend that (though I recommend it to others who are interested).

New for Python 2.5

"What's New in Python 2.5"

Of interest are:

If the Python crew is adding partial application to the language, I'm curious why they wouldn't have gone the whole hog and added in partial evaulation.

Implicit Behavioral Subtyping

I have posted a draft of an article about implicit behavioral subtyping in the Heron programming language at http://www.artima.com/weblogs/viewpost.jsp?thread=144349. I believe it to be original research, but I still have many more papers to plow through. I was wondering if anyone could help me out. That includes pointing out mistakes, or similar research which should be mentioned. Thanks a lot!

XML feed